window.onload = function () {
	function Obj() {} // 创建构造函数

	/*为这个构造函数挂载一个具有一个参数的原型方法*/
	Obj.prototype.draw = function (o) {
		//雪花每次下落的数值（10px）
		let speed = 0
		//设置雪花随机的开始x值的大小
		let startPosLeft = Math.ceil(Math.random() * document.documentElement.clientWidth)
		//设置透明度
		o.style.opacity = (Math.ceil(Math.random() * 3) + snowOpacity) / 10
		o.style.left = startPosLeft + "px"
		//设置颜色
		o.style.color = openRandom ? `rgb(${Math.floor(Math.random() * 256)},${Math.floor(Math.random() * 256)},${Math.floor(Math.random() * 256)})` : snowColor
		//设置大小
		o.style.fontSize = snowSize + Math.ceil(Math.random() * 14) + "px"

		setInterval(function () {
			//雪花下落的top值小鱼屏幕的可视区域高时执行下列
			if (speed < document.documentElement.clientHeight) {
				o.style.top = speed + "px"
				o.style.left = startPosLeft + Math.ceil(Math.random() * snowWeaving) + "px"
				speed += 10
			} else {
				o.style.display = "none"
			}
		}, snowFallingSpeed)
	}

	create("#snow1", snow1Pattern, snow1GenerateSpeed)
	create("#snow2", snow2Pattern, snow2GenerateSpeed)
	create("#snow3", snow3Pattern, snow3GenerateSpeed)

	//雪花创建
	function create(id, snowPattern, snowGenerateSpeed) {
		const snow = document.querySelector(id)
		setInterval(function () {
			const oDiv = document.createElement("div") //创建div
			oDiv.innerHTML = snowPattern //div的内容
			oDiv.style.position = "absolute" //div的绝对定位
			oDiv.style.transition = "all 0.5s" //div的过渡动画
			snow.appendChild(oDiv) //把创建好的div放进snow中
			const obj = new Obj() //实例化
			obj.draw(oDiv) //调用obj的draw方法
		}, snowGenerateSpeed)
	}
}
